Non-volatile memory is presently designed into a large number of electronic devices that require relatively permanent storage of data even after power is removed. Common uses for non-volatile memory include personal computers, solid state drives, digital cameras, and cellular telephones. For example, program code and system data such as a basic input/output system (BIOS) are typically stored in non-volatile memory for use in personal computer systems.
Problems can occur during read operations in a non-volatile memory device that can result in unreliable data being obtained. For example, if a memory cell has been weakly programmed (e.g., soft programmed), the threshold voltage of that memory cell might be below the low margin threshold voltage during a read operation.
FIG. 1 illustrates a typical prior art diagram of two threshold voltage distributions 101, 102 with a soft programmed memory cell 100. The distributions 101, 102 each represent a different expected placement of memory cells programmed to that particular logic value. For example, one distribution 101 at the positive threshold voltages represents the memory cells programmed to a logic ‘0’. The distribution 102 that includes the negative threshold voltages represents the memory cells at a logic ‘1’ (e.g., erased).
A soft programmed memory cell 100 might fall outside of both distributions 101, 102 and can result in a reliability problem. While this memory cell 100 might have been meant to be programmed to the logical ‘0’ state, when this memory cell 100 is read, it might be read as either a logical ‘0’ or a logical ‘1’ (e.g., still erased), depending on its threshold voltage.
For the reasons stated above and for other reasons that will become apparent to those skilled in the art upon reading and understanding the present specification, there is a need in the art for a way to more reliably read soft programmed memory cells.